using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MKDS_Course_Editor
{
    class nkm_file
    {
        public struct nkm
        {
            public string id;
            public OBJI OBJI;
            public PATH PATH;
            public POIT POIT;
            public STAG STAG;
            public KTPS KTPS;
            public KTPJ KTPJ;
            public KTP2 KTP2;
            public KTPC KTPC;
            public KTPM KTPM;
            public CPOI CPOI;
            public CPAT CPAT;
            public IPOI IPOI;
            public IPAT IPAT;
            public EPOI EPOI;
            public EPAT EPAT;
            public AREA AREA;
            public CAME CAME;
            public HEADER HEADER;
        }
        public struct OBJI
        {
            public string id;
            public int count;
        }
        public struct PATH
        {
            public string id;
            public int count;
        }
        public struct POIT
        {
            public string id;
            public int count;
        }
        public struct STAG
        {
            public string id;
            public int length;
        }
        public struct KTPS
        {
            public string id;
            public int count;
        }
        public struct KTPJ
        {
            public string id;
            public int count;
        }
        public struct KTP2
        {
            public string id;
            public int count;
        }
        public struct KTPC
        {
            public string id;
            public int count;
        }
        public struct KTPM
        {
            public string id;
            public int count;
        }
        public struct CPOI
        {
            public string id;
            public int count;
        }
        public struct CPAT
        {
            public string id;
            public int count;
        }
        public struct IPOI
        {
            public string id;
            public int count;
        }
        public struct IPAT
        {
            public string id;
            public int count;
        }
        public struct EPOI
        {
            public string id;
            public int count;
        }
        public struct EPAT
        {
            public string id;
            public int count;
        }
        public struct AREA
        {
            public string id;
            public int count;
        }
        public struct CAME
        {
            public string id;
            public int count;
        }
        public struct HEADER
        {
            public int PATH;
            public int POIT;
            public int STAG;
            public int KTPS;
            public int KTPJ;
            public int KTP2;
            public int KTPC;
            public int KTPM;
            public int CPOI;
            public int CPAT;
            public int IPOI;
            public int IPAT;
            public int EPOI;
            public int EPAT;
            public int AREA;
            public int CAME;
            public string start;
        }
        public struct kcl
        {
            public HEADER2 HEADER;
            public section1 section1;
            public section2 section2;
            public section3 section3;
            public List<octree> Octree;
        }
        public struct octree
        {
            public float X;
            public float Y;
            public float Z;
            public float Unknown;
            public List<octree> Octree;
            public List<ushort> childs;
        }
        public struct HEADER2
        {
            public string start;
            public int first;
            public int second;
            public int thirt;
            public int last;
            public int unknown1;
            public float Spatial_grid_X;
            public float Spatial_grid_Y;
            public float Spatial_grid_Z;
            public float X_Mask;
            public float Y_Mask;
            public float Z_Mask;
            public float Coordinate_shift;
            public float Y_shift;
            public float Z_shift;
        }
        public struct section1
        {
            public int count;
        }
        public struct section2
        {
            public int count;
        }
        public struct section3
        {
            public int count;
        }
        public class mr
        {
            public string[] name = new string[91];
            public byte[] time_1 = new byte[91];
            public byte[] time_2 = new byte[91];
            public int[] number = new int[91];
            public int[] fig = new int[91];
            public byte[] circuit = new byte[91];
        }
    }
}
